package com.cn.wanxi.service.impl;

import com.cn.wanxi.dao.ProductDao;
import com.cn.wanxi.model.ProductModel;
import com.cn.wanxi.service.ProductService;
import com.cn.wanxi.util.IOTool;
import com.cn.wanxi.util.Path;
import com.cn.wanxi.util.Tool;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ProductServiceImpl implements ProductService {

    /**
     * 为首页展示产品数据
     *
     * @return
     */
    @Override
    public ProductModel[] getProductModelsForHomePage() {

//        1.创建文件
        File file = IOTool.createFile(Path.PATH, Path.FILE_NAME_PRODUCT);
//        2.写入数据
        List<String> list = getDaoData();
        IOTool.writeFile(file, list);
//        3.读取数据

        String result = IOTool.readCharFile(file);
//        4.封装数据并返回数据
        return setData(result);
    }

    private List<String> getDaoData() {
        List<String> list = new ArrayList<>();
        list.add(Arrays.toString(ProductDao.IMGS));
        list.add(Tool.arrToString(ProductDao.TITLES));
        list.add(Tool.arrToString(ProductDao.CONTENTS));
        return list;
    }

    private ProductModel[] setData(String result) {
//        得到需要的数组的长度

        String[] results = result.split(Path.WRITE_SPLIT);
        String[] imgs = results[0].split(Path.ARRAY_SPLIT);
        String[] titles = results[1].split(Path.SPLIT);
        String[] contents = results[2].split(Path.SPLIT);
        int length = imgs.length;
//        创建一个数组用于返回到servlet
        ProductModel[] productModels = new ProductModel[length];
//        对数组进行赋值，所以需要遍历
        for (int i = 0; i < length; i++) {
//            每一个数组的对象应该不同，所以每一次都要重写创建对象
            ProductModel model = new ProductModel();
//            对对象进行属性赋值
            model.setImg(Tool.replace(imgs[i]));
            model.setContent(contents[i]);
            model.setTitle(titles[i]);
//            将当前对象赋值给数组
            productModels[i] = model;
        }
        return productModels;

    }

    /**
     * 为产品页面展示产品数据
     *
     * @return
     */
    @Override
    public ProductModel[] getProductModelsForNewsPage() {
        return new ProductModel[0];
    }
}
